#include<stdio.h>
#include<dshow.h>
// strmiids.lib
#define FILENAME L"sample.mpg"
int main() {
IGraphBuilder *pGraphBuilder;
IMediaControl *pMediaControl;
IMediaEvent *pMediaEvent;
long eventCode;
IVideoWindow *pVideoWindow;
CoInitialize(NULL);
CoCreateInstance(&CLSID_FilterGraph,
NULL,
CLSCTX_INPROC,
&IID_IGraphBuilder,
(LPVOID *)&pGraphBuilder);
pGraphBuilder->lpVtbl->QueryInterface(pGraphBuilder,
&IID_IMediaControl,
(LPVOID *)&pMediaControl);
pGraphBuilder->lpVtbl->QueryInterface(pGraphBuilder,
&IID_IMediaEvent,
(LPVOID *)&pMediaEvent);
pMediaControl->lpVtbl->RenderFile(pMediaControl, FILENAME);
// RenderFile以降で実施すること
pGraphBuilder->lpVtbl->QueryInterface(pGraphBuilder,
&IID_IVideoWindow,
(LPVOID *)&pVideoWindow);
pVideoWindow->lpVtbl->put_FullScreenMode(pVideoWindow, OATRUE);
pMediaControl->lpVtbl->Run(pMediaControl);
pMediaEvent->lpVtbl->WaitForCompletion(pMediaEvent, -1, &eventCode);
pVideoWindow->lpVtbl->put_FullScreenMode(pVideoWindow, OAFALSE);
pVideoWindow->lpVtbl->Release(pVideoWindow);
pMediaEvent->lpVtbl->Release(pMediaEvent);
pMediaControl->lpVtbl->Release(pMediaControl);
pGraphBuilder->lpVtbl->Release(pGraphBuilder);
CoUninitialize();
return 0;
}
|